package thread;

import java.util.concurrent.Semaphore;

public class demo42 {

    public static void main(String[] args) throws InterruptedException {
        //构造方法函数，就是信号量“计数器”的初始值，也就是“可用资源”的个数
        Semaphore semaphore = new Semaphore(3);
        semaphore.acquire(); // 申请资源，计数器- 1
        System.out.println("执行 P 操作");
        semaphore.acquire(); // 申请资源，计数器- 1
        System.out.println("执行 P 操作");
        semaphore.acquire(); // 申请资源，计数器- 1
        System.out.println("执行 P 操作");
        semaphore.acquire(); // 申请资源，计数器- 1
        System.out.println("执行 P 操作");
        semaphore.release(); // 释放资源，计数器+ 1
    }
}
